/**
 * (元素连续)
 * 给你字符串 s 和整数 k 。
 * <p>
 * 请返回字符串 s 中长度为 k 的单个子字符串中可能包含的最大元音字母数。
 * <p>
 * 英文中的 元音字母 为（a, e, i, o, u）。
 * <p>
 * 示例 1：
 * 输入：s = "abciiidef", k = 3
 * 输出：3
 */

class Solution {
    public int maxVowels(String s, int k) {
        char[] chars = s.toCharArray();

        int val = 0;    //记录最大值
        int vowels = 0; //记录当前窗口中的值

        for (int i = 0; i < chars.length; i++) {
            if (chars[i] == 'a' || chars[i] == 'e' || chars[i] == 'i' || chars[i] == 'o' || chars[i] == 'u') {
                vowels++;                 //1.进入窗口，更新窗口中元音的值
            }
            if (i < k - 1)                //初始进入窗口时，元素的位置要小于k-1
                continue;
            val = Math.max(val, vowels);        //2.更新最大值
            if (chars[i - k + 1] == 'a' || chars[i - k + 1] == 'e' || chars[i - k + 1] == 'i' || chars[i - k + 1] == 'o' || chars[i - k + 1] == 'u') {
                vowels--;                //3.弹出窗口，更新窗口中元音的值
            }
        }
        return val;
    }
}